using System;
using System.Collections.Generic;
using System.Reflection;

namespace Galaktika.BI.Runtime.Services
{
    public interface IAppManager
    {
        object CurrentForm { get; }
        event EventHandler CurrentFormChanged;
        event EventHandler SaveCurrentState;
        event EventHandler LoadCurrentState;
        void UpdateCurrentContext();
        void UpdateNavigationBar();
        void ResetForm();
        object Owner { get; }
        string GetAppTitle();
        Assembly ClientAssembly { get; }
        void AttachHelp(IBrickContainer container, object root);
    }

    //public interface IHelpService
    //{
    //    Form CurrentForm { get; }
    //    void UpdateCurrentContext();
    //    WorkDescriptor StartWork(string name, int workScope);
    //    void ProcessWork(WorkDescriptor descriptor);
    //    void StopWork(WorkDescriptor descriptor);
    //    IWin32Window Owner { get; }
    //}

    //public class WorkDescriptor
    //{
    //    public WorkDescriptor(string name, int workScope)
    //    {
    //        this.Name = name;
    //        this.Scope = workScope;
    //    }

    //    public readonly string Name;
    //    public readonly int Scope;
    //    public int Current = 0;
    //}
}
